home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 February: Tool Chest / Dev.CD Feb 95 / Dev.CD Feb 95.toast / Tool Chest / QuickDraw GX / QuickDraw GX Info / QuickDraw GX Interfaces / Interfaces & Libraries / interfaces / graphics debugging.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-04-30  |  5.6 KB  |  162 lines  |  [TEXT/MPS ]

  1. /* graphics:
  2.     graphics debugging routines
  3.     by Cary Clark, Georgiann Delaney, Herb Derby, Michael Fairman, Pablo Fernicola, Dave Good, Josh Horwich, Barton House, Robert Johnson, Keith McGreggor, Mike Reed, Oliver Steele, David Van Brink, Chris Yerga
  4.     Copyright 1987 - 1994 Apple Computer, Inc.  All rights reserved.    */
  5.  
  6. #pragma once
  7.  
  8. #ifndef graphicsDebuggingIncludes
  9.     #define graphicsDebuggingIncludes
  10.  
  11.     #ifndef graphicsTypesIncludes
  12.         #include "graphics types.h"
  13.     #endif
  14.     
  15.     #ifndef graphicsLinkageIncludes
  16.         #include "graphics linkage.h"
  17.     #endif
  18.  
  19.     enum gxValidationLevels {
  20.  
  21.     /* These levels tell how to validate routines.  Choose one. */
  22.         gxNoValidation            = 0x00,     /* no validation */
  23.         gxPublicValidation        = 0x01,     /* check parameters to public routines */
  24.         gxInternalValidation        = 0x02,     /* check parameters to internal routines */
  25.  
  26.     /* These levels tell how to validate types.  Choose one. */
  27.         gxTypeValidation        = 0x00,     /* check types of objects */
  28.         gxStructureValidation    = 0x10,     /* check fields of private structures */
  29.         gxAllObjectValidation    = 0x20,     /* check every object over every call */
  30.  
  31.     /* These levels tell how to validate memory manager blocks.  Choose any combination. */
  32.         gxNoMemoryManagerValidation        = 0x0000,
  33.         gxApBlockValidation                   = 0x0100,    /* check the relevant block structures after each memory mgr. call */
  34.         gxFontBlockValidation             = 0x0200,    /* check the system gxHeap as well */
  35.         gxApHeapValidation                = 0x0400,    /* check the memory manager’s gxHeap after every mem. call */
  36.         gxFontHeapValidation                  = 0x0800,    /* check the system gxHeap as well */
  37.         gxCheckApHeapValidation               = 0x1000,    /* check the memory manager’s gxHeap if checking routine parameters */
  38.         gxCheckFontHeapValidation         = 0x2000        /* check the system gxHeap as well */
  39.  
  40.     } ;
  41.  
  42.     typedef long gxValidationLevel;
  43.  
  44.     enum gxDrawErrors {
  45.         no_draw_error,
  46.  
  47.         /* gxShape type errors */
  48.         shape_emptyType,
  49.         shape_inverse_fullType,
  50.         rectangle_zero_width,
  51.         rectangle_zero_height,
  52.         polygon_empty,
  53.         path_empty,
  54.         bitmap_zero_width,
  55.         bitmap_zero_height,
  56.         text_empty,
  57.         glyph_empty,
  58.         layout_empty,
  59.         picture_empty,
  60.  
  61.         /* general gxShape errors */
  62.         shape_no_fill,
  63.         shape_no_enclosed_area,
  64.         shape_no_enclosed_pixels,
  65.         shape_very_small,
  66.         shape_very_large,
  67.         shape_contours_cancel,
  68.  
  69.         /* gxStyle errors */
  70.         pen_too_small,
  71.         text_size_too_small,
  72.         dash_empty,
  73.         start_cap_empty,
  74.         pattern_empty,
  75.         textFace_empty,
  76.         shape_primitive_empty,
  77.         shape_primitive_very_small,
  78.  
  79.         /* gxInk errors */
  80.         transfer_equals_noMode,
  81.         transfer_matrix_ignores_source,
  82.         transfer_matrix_ignores_device,
  83.         transfer_source_reject,
  84.         transfer_mode_ineffective,
  85.         colorSet_no_entries,
  86.         bitmap_colorSet_one_entry,
  87.  
  88.         /* gxTransform errors */
  89.         transform_scale_too_small,
  90.         transform_map_too_large,
  91.         transform_move_too_large,
  92.         transform_scale_too_large,
  93.         transform_rotate_too_large,
  94.         transform_perspective_too_large,
  95.         transform_skew_too_large,
  96.         transform_clip_no_intersection,
  97.         transform_clip_empty,
  98.         transform_no_viewPorts,
  99.  
  100.         /* gxViewPort errors */
  101.         viewPort_disposed,
  102.         viewPort_clip_empty,
  103.         viewPort_clip_no_intersection,
  104.         viewPort_scale_too_small,
  105.         viewPort_map_too_large,
  106.         viewPort_move_too_large,
  107.         viewPort_scale_too_large,
  108.         viewPort_rotate_too_large,
  109.         viewPort_perspective_too_large,
  110.         viewPort_skew_too_large,
  111.         viewPort_viewGroup_offscreen,
  112.  
  113.         /* gxViewDevice errors */
  114.         viewDevice_clip_no_intersection,
  115.         viewDevice_scale_too_small,
  116.         viewDevice_map_too_large,
  117.         viewDevice_move_too_large,
  118.         viewDevice_scale_too_large,
  119.         viewDevice_rotate_too_large,
  120.         viewDevice_perspective_too_large,
  121.         viewDevice_skew_too_large
  122.     };
  123.  
  124.     typedef long gxDrawError;
  125.  
  126.     typedef boolean (*gxUserDebugFunction)(const char *str, long message, long reference);
  127.  
  128.     struct graphicsBugParameters;
  129.  
  130.     #ifdef __cplusplus
  131.     extern "C" {
  132.     #endif
  133.  
  134.     gxDrawError GXGetShapeDrawError(gxShape source) GXInlineCode(0x1ee, gxNeedClient|gxNeedHeap|gxNeedStack);
  135.  
  136.     void GXValidateAll(void) GXInlineCode(0x1ef, gxNeedClient|gxNeedHeap|gxNeedStack);
  137.     void GXValidateColorSet(gxColorSet) GXInlineCode(0x1f0, gxNeedClient|gxNeedHeap|gxNeedStack);
  138.     void GXValidateColorProfile(gxColorProfile) GXInlineCode(0x1f1, gxNeedClient|gxNeedHeap|gxNeedStack);
  139.     void GXValidateGraphicsClient(gxGraphicsClient) GXInlineCode(0x1f2, gxAnyContext);
  140.     void GXValidateInk(gxInk) GXInlineCode(0x1f3, gxNeedClient|gxNeedHeap|gxNeedStack);
  141.     void GXValidateShape(gxShape) GXInlineCode(0x1f4, gxNeedClient|gxNeedHeap|gxNeedStack);
  142.     void GXValidateStyle(gxStyle) GXInlineCode(0x1f5, gxNeedClient|gxNeedHeap|gxNeedStack);
  143.     void GXValidateTag(gxTag) GXInlineCode(0x1f6, gxNeedClient|gxNeedHeap|gxNeedStack);
  144.     void GXValidateTransform(gxTransform) GXInlineCode(0x1f7, gxNeedClient|gxNeedHeap|gxNeedStack);
  145.     void GXValidateViewDevice(gxViewDevice) GXInlineCode(0x1f8, gxNeedClient|gxNeedHeap|gxNeedStack);
  146.     void GXValidateViewPort(gxViewPort) GXInlineCode(0x1f9, gxNeedClient|gxNeedHeap|gxNeedStack);
  147.     void GXValidateViewGroup(gxViewGroup) GXInlineCode(0x1fa, gxNeedClient|gxNeedHeap|gxNeedStack);
  148.  
  149.     gxValidationLevel GXGetValidation(void) GXInlineCode(0x1fb, gxNeedClient);
  150.     void GXSetValidation(gxValidationLevel) GXInlineCode(0x1fc, gxNeedClient);
  151.  
  152.     long GXGetValidationError(char *procedureName, void **argument, long *argumentNumber) GXInlineCode(0x1fd, gxNeedClient);
  153.     boolean GXGetGraphicsBugParametersPointer(struct graphicsBugParameters **blockPointer) GXInlineCode(0x1fe, gxNeedClient|gxNeedHeap|gxNeedStack);
  154.     gxUserDebugFunction GXGetUserGraphicsDebug(long *reference) GXInlineCode(0x1ff, gxAnyContext);
  155.     void GXSetUserGraphicsDebug(gxUserDebugFunction userFunction, long reference) GXInlineCode(0x200, gxAnyContext);
  156.  
  157.     #ifdef __cplusplus
  158.     }
  159.     #endif
  160.  
  161. #endif
  162.